<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //1.数组方法里面的push pop unshift shift的作用分别是什么，他们的返回值又是什么？
      //(1)push的作用是在数组的尾端添加元素,并返回该数组的新长度
      //(2)pop的作用是在数组的尾端删除元素 而且一次只能删除一个,并返回该元素的值
      //(3)unshift的作用是在数组的首端添加元素,并返回该数组的新长度
      //(4)shift的作用是在数组的首端删除元素 而且一次只能删除一个,并返回该元素的值

      //2.移除数组 arr["西瓜","香蕉","菠萝"]中除西瓜外的所有元素，不要使用第二个数组
      var fruit = ['西瓜', '香蕉', '菠萝'];
      fruit.splice(1, 2);
      console.log(fruit);
      //3.移除数组 arr[1, 2, 3, 4, 2] 中的 2。不要直接修改数组 arr，结果返回新的数组
      var num = [1, 2, 3, 4, 2];
      var num1 = [];
      for (var i = 0; i < num.length; i++) {
        if (num[i] !== 2) {
          num1.push(num[i]);
        }
      }
      console.log(num1);
      //4.定义一个函数,能在数组 arr[1, 2, 3, 4, 2] 的 "2"后面添加元素 "jack"。不要直接修改数组 arr，结果返回新的数组即调用函数后返回的结果为[1, 2,'jack',3, 4, 2,'jack']
      var arr = [1, 2, 3, 4, 2];
      function insertAfter(arr) {
        var newArr = [];
        for (let i = 0; i < arr.length; i++) {
          var num = arr[i];
          if (num === 2) {
            newArr.push(num);
            newArr.push('jack');
          } else {
            newArr.push(num);
          }
        }
        return newArr;
      }
      var res = insertAfter(arr);
      console.log(res);
      //5.统计数组 arr[1, 2, 3, 4, 2] 中 2 出现的次数

      var str = [1, 2, 3, 4, 2];
      var obj = {};
      for (var i = 0; i < str.length; i++) {
        obj[str[i]] ? (obj[str[i]] += 1) : (obj[str[i]] = 1);
      }
      var max = 0;
      var maxChar = '';
      for (var k in obj) {
        if (obj[k] > max) {
          max = obj[k];
          maxChar = k;
        }
      }
      console.log(`${maxChar}出现次数最多，出现了${max}次`);
    </script>
  </body>
</html>
